The present invention relates to controlling the operation of computing systems, and in particular, to configuring computing systems by applying multiple configuration files associated with specific aspects of a current operating session.
Computing systems are typically implemented on either stand-alone or networked computing elements. In stand-alone computing elements, all of the static configuration and dynamic transaction data is stored and processed in one computing element, such as a computer, that is local to the user. This type of computing system generally requires that the computing element contain a significant amount of storage and processing capability, which may be costly. In addition, if there are any changes to the configuration data or other instructions that control the operation of the computing system, a user must physically access the computing element to make the changes. As such, if more than one stand-alone computing element must be accessed, then the changes become time-consuming and, therefore, expensive.
In networked computing elements, however, much of the static configuration and dynamic transaction data is stored and processed in a server that is remote from the computing element. FIG. 1 illustrates one embodiment of networked computing elements, where computing elements 22 are in communication with a server 28 via a network 26. The networked computing elements are advantageous because, instead of storing duplicate information on multiple stand-alone computing elements, any common data and application information may be stored in one central location, such as the server 28 or a storage element in communication with the network 26, that may be accessed by the computing elements. In addition, many of the changes to the common application and/or underlying data are much less time-consuming than to multiple stand-alone computing elements because one set of changes may be made at the central location without requiring physical access to each computing element.
With reference to FIG. 1, and as used herein, a computing system comprises computing elements 22, users of computing elements, locations of computing elements, and any other aspect of the computing system that may affect the functionality and/or the presentation of the computing elements. For instance, computing elements 32, 34 and 36 may be in different locations and different users may utilize the computing elements for various activities. Alternatively, the same users may utilize the computing elements in the different locations based upon the type of activity, work shift, day of the week, or other variable associated with the user's utilization of the computing elements. In addition, there may be characteristics of the computing elements, users, locations, etc of the computing system that are common to all or most of the operating sessions initiated on the computing elements, while there may be other characteristics of a specific computing element, user, location, etc that are specific to the particular operating session of the computing system.
Thus, in any type of computer system implementation, the computing element must access configuration data, which includes instructions for the computing element that define, among other things, the presentation of information to users accessing the computing element, the peripheral devices with which the computing element communicates, the rules for processing information received from users, and any other type of instruction regarding the functionality of the computing system. In general, the configuration data is stored in configuration files that are associated with either a particular computing element or a particular user. Therefore, when a user logs onto a computing element in the computer system, the computing element receives its configuration instructions from either a computing element configuration file or user configuration file. Typically, the configuration files associated with particular computing elements or users include both the general instructions common to all of the computing elements and/or users of the computing system and the instructions specific to the particular computing element and/or user.
Configuration files associated with a computing element contain instructions regarding how the computing element is to be configured each time a user logs onto the computing element, regardless of the identity of the user. Thus, each time any user logs onto a particular computing element, that computing element is configured in the same manner. If a particular user that logs onto the computing element desires a different or customized configuration, then that user must manually configure the computing element accordingly each time that user logs onto the computing element, which is time consuming for the user. In addition, if the general configuration attributes change, then each configuration file typically must be separately accessed and changed by a user and/or a system administrator, which, again, is time-consuming and laborious for the user and/or system administrator.
Configuration files associated with a user, on the other hand, contain specific instructions regarding how a computing element 22 is to be configured each time that particular user logs onto a computing element 22, regardless of the identity of the computing element. Thus, each time a particular user logs onto any computing element in the computing system, the computing element is configured according to that user's configuration file. This type of configuration works well if the user's responsibilities never change in relation to the particular computing element they are using. If, however, particular computing elements in the computing system are to be used for certain activities while other computing elements are to be used for other activities, and the user moves to the various computing elements to perform those activities, then each time the user changes computing elements, the computing element is configured for the particular user, but not for the particular activity assigned to the computing element. As such, the user must manually configure the computing element for the certain activity assigned to the computing element each time the user logs onto a computing element, which, again, is time consuming for the user.
One way to prevent a user from having to configure at least part of the computing element each time that user logs onto a computing element in a computing system where the computing element may be assigned certain activities, is to hard-code the computing elements with the certain instructions for the activity to which the computing element is assigned, then the computing element may receive information from a configuration file associated with the particular user. In this situation, however, if the activity assigned to a particular computing element ever changes, then an administrator must physically access the computing element to change the instructions hard-coded in the computing element, which is a time consuming and labor intensive process for an administrator.
Thus, there is typically no way to dynamically configure any given computing element in a computing system with instructions that take into account the activity associated with the computing element and the particular user logging onto the computing element without tying the configuration to either the user or the computing element. In addition, there is typically no efficient way to configure computing elements for the general instructions that apply to all or most of the computing elements and/or users in the computing system and the specific instructions that apply to a small group or an individual computing element or user in the computing system. As such, the user and/or the computing system administrator must perform a relatively significant amount of configuration after logging onto a computing element and a relatively significant amount of work in order to change any existing configuration files regardless of whether the computing element has access to a user configuration file, a computing element configuration file, or whether the user configuration file is combined with a hard-coded configuration.
In light of the considerations detailed above, there is a need in the computing industry for the ability to efficiently and dynamically configure a specific computing element for a particular user of the computing system, particular computing element functions, and/or any other aspect of the overall computing system, such that the user of the computing element and/or the administrator of the computing system do not have to consume time and labor performing the configurations each time the user logs onto the particular computing element or when the existing configuration files change. In addition, there are instances when it would be advantageous to configure specific computing systems differently based upon the location of the computing element, the day of the week, or any other aspect of the computing system in addition to the different configurations based upon the particular user and the activities associated with the computing element. The conventional configuration techniques, however, typically do not provide, and, thus, there is a need for, an efficient way to customize computing system configurations by providing configurations based upon any and all desired aspects of the computing system.